package cn.da.shuai.cool.system.service.service;

import cn.da.shuai.cool.mybatis.service.ICoolService;
import cn.da.shuai.cool.system.model.entity.config.CoolConfig;

/**
 * 参数配置服务接口
 */
public interface ICoolConfigService extends ICoolService<CoolConfig> {

    /**
     * 根据键名查询参数配置信息
     *
     * @param configKey 参数键名
     * @return 参数键值
     */
    String selectConfigByKey(String configKey);

    /**
     * 查询参数配置信息
     *
     * @param configId 参数配置ID
     * @return 参数配置信息
     */
    CoolConfig selectConfigById(Long configId);

    /**
     * 加载参数缓存数据
     */
    void loadingConfigCache();

    /**
     * 清空参数缓存数据
     */
    void clearConfigCache();

    /**
     * 重置参数缓存数据
     */
    void resetConfigCache();

    /**
     * 校验参数键名是否唯一
     *
     * @param config 参数信息
     * @return 结果
     */
    boolean checkConfigKeyUnique(CoolConfig config);
}